こんいす〜
2023年11/25日開催のISUCON13に参加しました。
去年と同じメンバーで出ました。
→121位 17,724点でした。目標としてた2桁順位届かず、、かなり悔しい
https://scrapbox.io/files/656310d9baa670001b083816.png
table:ざっくり
10:00-10:10 インスタンス起動/マニュアル確認
1010-11:00 ツール導入、/etc周りとwebappのgit管理、ログ周りの設定
11:00-18:00 初回ベンチ:3300点くらい
CREATE INDEX idx_livestream_id ON livestream_tags(livestream_id);→score: 4814
CREATE INDEX idx_user_id ON icons(user_id);→score: 5,677
unabled prepared statement→score: 6,953
CREATE INDEX idx_themes_user_id ON themes(user_id);→score: 7,770
以下アプリ側のN+1潰しを始めた
iconキャッシュ→score: 8,430
ランキング集計→score: 12925
moderate/tag→score: 15,540
もう一回ランキング集計→score: 15883
CREATE INDEX idx_user_id ON livestreams(user_id);→score: 16,679
CREATE INDEX idx_livestream_id_created_at ON livecomments (livestream_id, created_at DESC);→score: 16,735
↑ボトルネックがlivestream関係だった。fillXXXResponseの実装を見て闇が深い感じだったので時間的に断念
この時点で終了30分前くらいだったのでログ書き出しの削除等の設定をして再度ベンチ→score: 17,398
PR まとめられるところもうちょっとまとめて作業すればよかった statisticとか
https://scrapbox.io/files/6562fd6cfc302c001c621c43.png
個人的に
よかったこと
あらかじめ当日の動きを打ち合わせしておいたので手が空く人がいなかった
ログローテションやボトルネックの特定が前回よりスムーズに行えていた
改善点
/etcは全部git管理下におくようにする
DNS水責め攻撃の土俵まで進まなかった
ベンチ落ちてたの気づかなかった(Discordを確認しましょう)
ローカル環境はいらないかもしれない
インスタンス1台しか活かせなかった高得点狙うには DBの分離は必須
そういえばpprof見てない
定型作業のスクリプトは一度実践で使って使いやすいか確認する
インスタンス複数台構成の練習をする
上位勢の動き方を確認する
感想
今回はちゃんとスコアの伸びを実感できてISUCONしている感があって楽しかった。
来年こそは2桁順位を目指して頑張りたい。
おついす〜